﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using FirebirdSql.Data.FirebirdClient;
using Estrutura;


namespace Banco
{

    public class BD_Intervalo_tipo
    {
        #region variaveis_globais

        acessaDB.conectaDBFireBird fireBird = new conectaDBFireBird();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_Intervalo_tipo()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
        }
        public BD_Intervalo_tipo(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public DataSet _retorna_Intervalo_tipo(
                                                string CTM_INTERVALO_TIPO_ID,
                                                string CIT_DESCRICAO,
                                                string CIT_TIPO_EXECUCAO
                                                )
        {

            if (string.IsNullOrEmpty(CTM_INTERVALO_TIPO_ID)) CTM_INTERVALO_TIPO_ID = "'0'";
            if (string.IsNullOrEmpty(CIT_DESCRICAO)) CIT_DESCRICAO = "''";
            if (string.IsNullOrEmpty(CIT_TIPO_EXECUCAO)) CIT_TIPO_EXECUCAO = "''";

            string sql = "SELECT " +
                                  "CTM_INTERVALO_TIPO.CTM_INTERVALO_TIPO_ID, " +
                                  "CTM_INTERVALO_TIPO.CIT_DESCRICAO, " +
                                  "CTM_INTERVALO_TIPO.CIT_TIPO_EXECUCAO " +
                            "FROM CTM_INTERVALO_TIPO " +
                            "WHERE " +
                            "      (CTM_INTERVALO_TIPO.CTM_INTERVALO_TIPO_ID           = " + CTM_INTERVALO_TIPO_ID + "  OR " + CTM_INTERVALO_TIPO_ID + " = '0') AND " +
                            "      (CTM_INTERVALO_TIPO.CIT_DESCRICAO                   = " + CIT_DESCRICAO + "  OR " + CIT_DESCRICAO + " = '') AND " +
                            "      (CTM_INTERVALO_TIPO.CIT_TIPO_EXECUCAO               = " + CIT_TIPO_EXECUCAO + "  OR " + CIT_TIPO_EXECUCAO + " = '') ";

            DataSet dsRetorno = fireBird.retornaDataSet(sql, conectionString);
            return dsRetorno;

        }


        public List<ES_Intervalo_tipo> _obter_Intervalo_tipo(
                                                string CTM_INTERVALO_TIPO_ID,
                                                string CIT_DESCRICAO,
                                                string CIT_TIPO_EXECUCAO
                                                )
        {

            if (string.IsNullOrEmpty(CTM_INTERVALO_TIPO_ID)) CTM_INTERVALO_TIPO_ID = "'0'";
            if (string.IsNullOrEmpty(CIT_DESCRICAO)) CIT_DESCRICAO = "''";
            if (string.IsNullOrEmpty(CIT_TIPO_EXECUCAO)) CIT_TIPO_EXECUCAO = "''";

            string sql = "SELECT " +
                                  "CTM_INTERVALO_TIPO.CTM_INTERVALO_TIPO_ID, " +
                                  "CTM_INTERVALO_TIPO.CIT_DESCRICAO, " +
                                  "CTM_INTERVALO_TIPO.CIT_TIPO_EXECUCAO " +
                            "FROM CTM_INTERVALO_TIPO " +
                            "WHERE " +
                            "      (CTM_INTERVALO_TIPO.CTM_INTERVALO_TIPO_ID           = " + CTM_INTERVALO_TIPO_ID + "  OR " + CTM_INTERVALO_TIPO_ID + " = '0') AND " +
                            "      (CTM_INTERVALO_TIPO.CIT_DESCRICAO                   = " + CIT_DESCRICAO + "  OR " + CIT_DESCRICAO + " = '') AND " +
                            "      (CTM_INTERVALO_TIPO.CIT_TIPO_EXECUCAO               = " + CIT_TIPO_EXECUCAO + "  OR " + CIT_TIPO_EXECUCAO + " = '') "+
                            " ORDER BY CTM_INTERVALO_TIPO.CIT_DESCRICAO ";

            List<ES_Intervalo_tipo> lista = new List<ES_Intervalo_tipo>();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Intervalo_tipo item = new ES_Intervalo_tipo();
                    item.CTM_INTERVALO_TIPO_ID = dr["CTM_INTERVALO_TIPO_ID"].ToString();
                    item.CIT_DESCRICAO = dr["CIT_DESCRICAO"].ToString();
                    item.CIT_TIPO_EXECUCAO = dr["CIT_TIPO_EXECUCAO"].ToString();
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }


        public ES_Intervalo_tipo _obter_Intervalo_tipo_by_id(
                                                string CTM_INTERVALO_TIPO_ID
                                                )
        {

            if (string.IsNullOrEmpty(CTM_INTERVALO_TIPO_ID)) CTM_INTERVALO_TIPO_ID = "'0'";

            string sql = "SELECT " +
                                  "CTM_INTERVALO_TIPO.CTM_INTERVALO_TIPO_ID, " +
                                  "CTM_INTERVALO_TIPO.CIT_DESCRICAO, " +
                                  "CTM_INTERVALO_TIPO.CIT_TIPO_EXECUCAO " +
                            "FROM CTM_INTERVALO_TIPO " +
                            "WHERE " +
                            "      (CTM_INTERVALO_TIPO.CTM_INTERVALO_TIPO_ID = " + CTM_INTERVALO_TIPO_ID + "  OR " + CTM_INTERVALO_TIPO_ID + " = '0') ";

            ES_Intervalo_tipo item = new ES_Intervalo_tipo();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    item.CTM_INTERVALO_TIPO_ID = dr["CTM_INTERVALO_TIPO_ID"].ToString();
                    item.CIT_DESCRICAO = dr["CIT_DESCRICAO"].ToString();
                    item.CIT_TIPO_EXECUCAO = dr["CIT_TIPO_EXECUCAO"].ToString();

                }
                return item;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }


        public void _inserir_Intervalo_tipo(
                                                string CTM_INTERVALO_TIPO_ID,
                                                string CIT_DESCRICAO,
                                                string CIT_TIPO_EXECUCAO
                                                )
        {

            string sql = " INSERT INTO CTM_INTERVALO_TIPO " +
                         "      ( " +
                         "          CIT_DESCRICAO                  , " +
                         "          CIT_TIPO_EXECUCAO                " +
                 "      )" +
                 "  VALUES " +
                 "      ( " +
                              Util.retonarAspas(CIT_DESCRICAO, true) + ", " +
                              Util.retonarAspas(CIT_TIPO_EXECUCAO, true) +
                 "      )";
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _atualizar_Intervalo_tipo(
                                                string CTM_INTERVALO_TIPO_ID,
                                                string CIT_DESCRICAO,
                                                string CIT_TIPO_EXECUCAO
                                                )
        {

            string sql = " UPDATE CTM_INTERVALO_TIPO SET " +
                         "      CIT_DESCRICAO                   = " + Util.retonarAspas(CIT_DESCRICAO, true) + ", " +
                         "      CIT_TIPO_EXECUCAO               = " + Util.retonarAspas(CIT_TIPO_EXECUCAO, true) +
                         " WHERE CTM_INTERVALO_TIPO_ID =  " + CTM_INTERVALO_TIPO_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _excluir_Intervalo_tipo(string CTM_INTERVALO_TIPO_ID)
        {
            string sql = "DELETE FROM CTM_INTERVALO_TIPO WHERE CTM_INTERVALO_TIPO_ID = " + CTM_INTERVALO_TIPO_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }


        //método para alimetar radComboBox de Métodos de Execução
        public List<ES_Intervalo_tipo_formaExecucao> _obter_formaExecucao()
        {

            List<ES_Intervalo_tipo_formaExecucao> lista = new List<ES_Intervalo_tipo_formaExecucao>();
            string formmaExecucao = "CUMPRIMENTO UNICO;APOS CUMPRIMENTO FIXO;PERIODICO;INDEPENDE DE PERIODICIDADE";
            string[] arrayFormaExecucao = formmaExecucao.Split(new char[] {';'});

            foreach(string myString in arrayFormaExecucao)
            {
                ES_Intervalo_tipo_formaExecucao item = new ES_Intervalo_tipo_formaExecucao();
                item.CIT_TIPO_EXECUCAO = myString;
                lista.Add(item);
            }
            return lista;
        }


        #endregion
    }
}
